home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1998 July / EnigmA AMIGA RUN 29 (1998)(G.R. Edizioni)(IT)[!][issue 1998-07 & 08].iso / earkit / news / thor / rexx / spreadevent.thor < prev    next >
Text File  |  1998-05-24  |  5KB  |  201 lines

  1. /* SpreadEvent.thor by Sigbjørn Skjæret
  2. ** $VER: SpreadEvent.thor 1.21 (5.6.95)
  3. **
  4. ** Copies events to other BBSes...
  5. */
  6.  
  7. options results
  8.  
  9. p = ' ' || address() || ' ' || show('P',,)
  10. thorport = pos(' THOR.',p)
  11.  
  12. if thorport > 0 then thorport = word(substr(p,thorport+1),1)
  13. else
  14. do
  15.     say 'No THOR port found!'
  16.     exit 10
  17. end
  18.  
  19. if ~show('p', 'BBSREAD') then
  20. do
  21.     address command
  22.         "run >nil: `GetEnv THOR/THORPath`bin/LoadBBSRead"
  23.         "WaitForPort BBSREAD"
  24. end
  25.  
  26. address(thorport)
  27.  
  28. CURRENTBBS stem CURRENT
  29. if(rc ~= 0) then
  30. do
  31.  REQUESTNOTIFY TEXT '"'"Error:" upper(left(THOR.LASTERROR, 1)) || delstr(THOR.LASTERROR, 1, 1)'"' BT '"_OK"'
  32.  exit
  33. end
  34.  
  35. GETSELECTEDEVENT
  36. if(rc ~= 0) then 
  37. do 
  38.  REQUESTNOTIFY TEXT '"No selected event."' BT '"_OK"'
  39.  exit
  40. end
  41.  
  42. event = result
  43.  
  44. address BBSREAD READBREVENT '"'CURRENT.BBSNAME'"' event datastem EVENTDATA tagsstem EVENTTAGS
  45. if(rc ~= 0) then
  46. do
  47.  REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  48.  exit
  49. end
  50.  
  51. /*
  52. EVE_ENTERMSG     =  0  - Enter message
  53. EVE_REPLYMSG     =  1  - Reply message
  54. EVE_JOINCONF     =  2  - Join conference
  55. EVE_RESIGNCONF   =  3  - Resign conference
  56. EVE_DOWNLOAD     =  4  - Download file
  57. EVE_UPLOAD       =  5  - Upload file
  58. EVE_CONFLIST     =  6  - Get conflist
  59. EVE_CONFIGUREBBS =  7  - Set correct configuration on the bbs
  60. EVE_SENDUSERINFO =  8  - Send userinfo
  61. EVE_GETMESSAGES  =  9  - Get specified messages
  62. EVE_GETNEWFILES  = 10  - Get new files listing
  63. EVE_DOCOMMAND    = 11  - Command the script should do
  64. EVE_AUTOLOGOFF   = 12  - Autologoff on next session
  65. */
  66.  
  67. if(EVENTDATA.EVENTTYPE = 1 | EVENTDATA.EVENTTYPE = 2 | EVENTDATA.EVENTTYPE = 3 | EVENTDATA.EVENTTYPE = 9) then
  68. do
  69.  REQUESTNOTIFY TEXT '"This eventtype is not supported for obvious reasons!"' BT '"_Ok, smartypants!"'
  70.  exit
  71. end
  72.  
  73. if(EVENTDATA.EVENTTYPE = 4) then
  74. do
  75.  REQUESTNOTIFY TEXT '"Why would you want to do that?"' BT '"_Ok, my fault!"'
  76.  exit
  77. end
  78.  
  79. if(EVENTDATA.EVENTTYPE = 5) then
  80. do
  81.  REQUESTNOTIFY TEXT '"I''m only doing this because you''ve been so nice!\nUse MultiUpload.thor next time..."' BT '"_Ok, I''ll do that!"'
  82.  if(EVENTTAGS.CONFERENCE ~= 'EVENTTAGS.CONFERENCE') then getconf = 1
  83. end
  84.  
  85. if(EVENTDATA.EVENTTYPE = 0) then getconf = 1
  86.  
  87. do forever
  88.  call DoThing
  89.  
  90.  do i = 1 to TOBBS.COUNT
  91.   if(getconf = 1) then EVENTTAGS.CONFERENCE = TOCONF.i
  92.  
  93.   if(EVENTTAGS.MSGFILE ~= 'EVENTTAGS.MSGFILE') then
  94.   do
  95.    drop BBSDATA
  96.    address BBSREAD GETBBSDATA '"'CURRENT.BBSNAME'"' stem BBSDATA
  97.    if(rc ~= 0) then
  98.    do
  99.     REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  100.     exit
  101.    end
  102.  
  103.    address BBSREAD UNIQUEMSGFILE '"'TOBBS.i'"' stem MSG
  104.    if(rc ~= 0) then
  105.    do
  106.     REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  107.     exit
  108.    end
  109.  
  110.    address command "copy" '"'BBSDATA.BBSPATH || EVENTTAGS.MSGFILE'"' '"'MSG.NAME'"' "QUIET NOREQ"
  111.  
  112.    EVENTTAGS.MSGFILE = MSG.FILEPART
  113.   end
  114.  
  115.   if(EVENTTAGS.DETAILEDFILEDESCR ~= 'EVENTTAGS.DETAILEDFILEDESCR') then
  116.   do
  117.    drop BBSDATA
  118.    address BBSREAD GETBBSDATA '"'CURRENT.BBSNAME'"' stem BBSDATA
  119.    if(rc ~= 0) then
  120.    do
  121.     REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  122.     exit
  123.    end
  124.  
  125.    address BBSREAD UNIQUEMSGFILE '"'TOBBS.i'"' stem MSG
  126.    if(rc ~= 0) then
  127.    do
  128.     REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  129.     exit
  130.    end
  131.  
  132.    address command "copy" '"'BBSDATA.BBSPATH || EVENTTAGS.DETAILEDFILEDESCR'"' '"'MSG.NAME'"' "QUIET NOREQ"
  133.  
  134.    EVENTTAGS.DETAILEDFILEDESCR = MSG.FILEPART
  135.   end
  136.  
  137.   address BBSREAD WRITEBREVENT '"'TOBBS.i'"' EVENTDATA.EVENTTYPE stem EVENTTAGS
  138.   if(rc ~= 0) then
  139.   do
  140.    REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  141.    exit
  142.   end
  143.  
  144.   PACKEVENTS '"'TOBBS.i'"'
  145.   if(rc ~= 0) then
  146.   do
  147.    REQUESTNOTIFY TEXT '"'"Error:" upper(left(THOR.LASTERROR, 1)) || delstr(THOR.LASTERROR, 1, 1)'"' BT '"_OK"'
  148.    exit
  149.   end
  150.  
  151.   drop EVENTDATA
  152.   drop EVENTTAGS
  153.   address BBSREAD READBREVENT '"'CURRENT.BBSNAME'"' event datastem EVENTDATA tagsstem EVENTTAGS
  154.   if(rc ~= 0) then
  155.   do
  156.    REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  157.    exit
  158.   end
  159.  end
  160. end
  161.  
  162. DoThing:
  163. drop BBSLIST
  164. address BBSREAD GETBBSLIST stem BBSLIST
  165. if(rc ~= 0) then 
  166. do
  167.  REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  168.  exit
  169. end
  170.  
  171. drop TOBBS
  172. drop TOCONF
  173. REQUESTLIST instem BBSLIST outstem TOBBS title '"Select BBS to copy event to"' MULTISELECT
  174. if(rc ~= 0) then 
  175. do
  176.  if(rc ~= 5) then REQUESTNOTIFY TEXT '"'"Error:" upper(left(THOR.LASTERROR, 1)) || delstr(THOR.LASTERROR, 1, 1)'"' BT '"_OK"'
  177.  exit
  178. end
  179.  
  180. do i = 1 to TOBBS.COUNT
  181.  if(getconf = 1) then
  182.  do
  183.   address BBSREAD GETCONFLIST bbsname '"'TOBBS.i'"' stem CONFLIST
  184.   if(rc ~= 0) then 
  185.   do
  186.    REQUESTNOTIFY TEXT '"'"Error:" upper(left(BBSREAD.LASTERROR, 1)) || delstr(BBSREAD.LASTERROR, 1, 1)'"' BT '"_OK"'
  187.    exit
  188.   end
  189.  
  190.   REQUESTLIST instem CONFLIST outstem CONF title '"Select Conference"'
  191.   if(rc ~= 0) then 
  192.   do
  193.    if(rc ~= 5) then REQUESTNOTIFY TEXT '"'"Error:" upper(left(THOR.LASTERROR, 1)) || delstr(THOR.LASTERROR, 1, 1)'"' BT '"_OK"'
  194.    exit
  195.   end
  196.  
  197.   TOCONF.i = result
  198.  
  199.  end
  200. end
  201.